home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / 422mods.zip / TFC005.422 < prev    next >
Text File  |  1993-03-09  |  14KB  |  479 lines

  1. 2TFC005.MOD 1Enhanced Time Display Mod
  2. The Flying Chicken [SysOp] #1 @12456
  3. 3Sunday, March 7, 1993  1 7:52 pm
  4.  
  5. TFC005.MOD - Enhanced time display
  6. Author: The Flying Chicken 1@12456 (WWIVLink) 1@2456 (WWIVNet) 1@2456 (IceNet)
  7. Source: WWIV 4.20 thru 4.22
  8. Version: 1.6
  9.  
  10.     After staring at the "01:50:30" time display for ages, I got real tired
  11.     of it, and decided it would be easy to make it more meaningful.  Well,
  12.     that's exactly what this mod does.  Many users don't understand what
  13.     "01:50:30" means, but they do understand "1 hour, 50 minutes, 30 seconds".
  14.     I also have included Goose's enhanced time display mod, mainly becuase
  15.     it is a mod that should be included in the source code anyway.  That mod
  16.     changes "Sun, Apr 1 14:28:12 1990" to the more readable format,
  17.     "Sunday, April 1, 1990   2:28 pm" (not to mention that it puts the year
  18.     with the rest of the date!).  Many thanks and all the credit goes to Goose
  19.     for his time display mod, which gave me the idea and basis for the total
  20.     mod I have here.  By the way, I also had both of these mods in my
  21.     4.12 source, so they are downward compatable, you just have to find
  22.     the right source file to make the changes in.
  23.  
  24.     v1.6    Upgrade for 4.22 code.
  25.     v1.5    Removed duplicate addition of atime().
  26.     v1.0    Initial version
  27.  
  28.     Before using this or any mod, back up your source !!!!!
  29.  
  30.                 PKZIP source *.c *.h *.mak
  31.  
  32.     1. Load up FCNS.H and add the following line as shown.  (Or,
  33.        MAKE FCNS before you re-compile, whichever is easier for
  34.        you.)
  35.  
  36. int lcs();
  37. void checka(int *abort, int *next);
  38. void pla(char *s, int *abort);
  39. char *ctim(double d);
  40. char *ctim2(double d);                              /* ADD */
  41. int sysop2();
  42.  
  43.  
  44.     2. Search down farther and make the changes shown.
  45.  
  46. char *date();
  47. char *times();
  48. char *atime();                                             /* ADD */
  49. unsigned int finduser(char *s);
  50. void changedsl();
  51.  
  52.     3. Save FCNS.H and load BBSUTL.C.  Add the following procedure,
  53.        right after char *ctim().
  54.  
  55. char *ctim2(double d)                               /* ADD FUNCTION */
  56. {
  57.   static char ch2[81];
  58.   char ht[20],mt[20],st[20];
  59.   long h,m,s;
  60.  
  61.   h=(long) (d/3600.0);
  62.   d-=(double) (h*3600);
  63.   m=(long) (d/60.0);
  64.   d-=(double) (m*60);
  65.   s=(long) (d);
  66.   if (h==0)
  67.     strcpy(ht,"");
  68.   else 
  69.     sprintf(ht,"2%ld 3%s",h,(h>1)?"hours":"hour");
  70.   if (m==0)
  71.     strcpy(mt,"");
  72.   else
  73.     sprintf(mt,"2%ld 3%s",m,(m>1)?"minutes":"minute");
  74.   if (s==0)
  75.     strcpy(st,"");
  76.   else
  77.     sprintf(st,"2%ld 3%s",s,(s>1)?"seconds":"second");
  78.  
  79.   if (h==0) {
  80.     if (m==0) {
  81.       if (s==0) {
  82.         strcpy(ch2," ");
  83.       } else {
  84.         strcpy(ch2,st);
  85.       }
  86.     } else {
  87.       strcpy(ch2,mt);
  88.       if (s!=0) {
  89.         strcat(ch2,", ");
  90.         strcat(ch2,st);
  91.       }
  92.     }
  93.   } else {
  94.     strcpy(ch2,ht);
  95.     if (m==0) {
  96.       if (s!=0) {
  97.         strcat(ch2,", ");
  98.         strcat(ch2,st);
  99.       }
  100.     } else {
  101.       strcat(ch2,", ");
  102.       strcat(ch2,mt);
  103.       if (s!=0) {
  104.         strcat(ch2,", ");
  105.         strcat(ch2,st);
  106.       }
  107.     }
  108.   }
  109.   return(ch2);
  110. }
  111.  
  112.  
  113.     4. Save BBSUTL.C and load up XFER.C.  Search for the int printfileinfo()
  114.        procedure and make the changes shown.
  115.  
  116.     v1.6 NOTE:  Wayne changed the following code in version 4.22, so
  117.                 if you are using 4.22, skip to the next code block.
  118.                 The following block is for 4.21a and under only.
  119.  
  120.   npr("Filename   : %s\r\n", stripfn(u->filename));
  121.   npr("Description: %s\r\n", u->description);
  122.   npr("File size  : %dk\r\n", ((u->numbytes)+1023)/1024);
  123.   npr("Apprx. time: %s\r\n", ctim2(d));                 /* CHANGE (Add '2') */
  124.   npr("Uploaded on: %s\r\n", u->date);
  125.  
  126.  
  127.     v1.6  NOTE: Okay, here is the code for 4.22 versions.
  128.  
  129.   outstr(get_string(746)); pl(stripfn(u->filename));
  130.   outstr(get_string(747)); pl(u->description);
  131.   outstr(get_string(748)); npr("%dk\r\n", ((u->numbytes)+1023)/1024);
  132.   outstr(get_string(749)); pl(ctim2(d));                /* CHANGE (Add '2') */
  133.   outstr(get_string(750)); pl(u->date);
  134.   outstr(get_string(751)); pl(u->upby);
  135.  
  136.  
  137.     5. Save XFER.C and load up BATCH.C.  Search for void listbatch()
  138.        and make the changes shown.
  139.  
  140.     v1.6 NOTE: Again, code is seperated here for 4.21a and under.
  141.                If you run 4.22, see the block after the one below.
  142.  
  143.   abort=0;
  144.   nl();
  145.   if (numbatchdl)
  146.     npr("Files - %d  Time - %s\r\n",numbatch,ctim2(batchtime)); /* CHANGE */
  147.   else
  148.     npr("Files - %d\r\n",numbatch);
  149.   nl();
  150.  
  151.     v1.6 NOTE: Here's the 4.22 block of code:
  152.  
  153.   npr("%d  ",numbatch);
  154.   if (numbatchdl) {
  155.     outstr(get_string(865));
  156.     pl(ctim2(batchtime));                           /* CHANGE  - add '2' */
  157.   } else
  158.     nl();
  159.  
  160.  
  161.  
  162.     6. Now search for void ymbatchdl() and make the changes shown.
  163.  
  164.     v1.6 NOTE:  Code split again.  Here is the 4.21a and under code:
  165.  
  166.   if (!incom)
  167.     return;
  168.   sprintf(s,"Ymodem BATCH DL, %d files, time=%s",numbatchdl, ctim2(batchtime));
  169.   if (had)                                        /* CHANGE ABOVE LINE */
  170.     strcat(s,", HAD");
  171.  
  172.  
  173.     v1.6 NOTE: And here is the 4.22 code:
  174.  
  175.   if (!incom)
  176.     return;                              /* ADD THE '2' IN THE LINE BELOW ! */
  177.   sprintf(s,get_stringx(1,57),numbatchdl, ctim2(batchtime));
  178.   if (had)
  179.     strcat(s,get_stringx(1,58));
  180.   sysoplog(s);
  181.  
  182.  
  183.     7. Go to step 8.
  184.  
  185.     8. Now search for void dszbatchdl() and make the changes.
  186.  
  187.     v1.6 NOTE: Here is the 4.21a and under code:
  188.  
  189.   sprintf(dl,"%s BATCH DL, %d files, time=%s",
  190.           desc, numbatchdl, ctim2(batchtime));          /* CHANGE */
  191.   if (had)
  192.     strcat(dl,", HAD");
  193.   sysoplog(dl);
  194.   nl();
  195.   pl(dl);
  196.  
  197.     v1.6 NOTE: Here is the 4.22 code:
  198.  
  199.   sprintf(dl,get_stringx(1,61),
  200.           desc, numbatchdl, ctim2(batchtime));      /* ADD THE 2 THERE ! */
  201.   if (had)
  202.     strcat(dl,get_stringx(1,58));
  203.   sysoplog(dl);
  204.   nl();
  205.   pl(dl);
  206.  
  207.  
  208.  
  209.     9. Save BATCH.C and load BBS.C.  Search for void mainmenu() and
  210.        make the changes shown.  Note that most modders change this
  211.        part of the code, you just need to change ctim() to ctim2().
  212.  
  213.   if ((sysstatus_expert & thisuser.sysstatus)==0)
  214.     printmenu(0);
  215.   nl();
  216.   nl();
  217.   tleft(1);
  218.   npr("T - %s\r\n",ctim2(nsl()));               /* CHANGE */
  219.   s1[0]=0;
  220.  
  221.  
  222.     10. Search down further and continue.
  223.  
  224.     v1.6 NOTE:  You know the drill.  4.21a and under code:
  225.  
  226.         if (yn()) {
  227.           outchr(12);
  228.           npr("Time on   = %s\r\n",ctim2(timer()-timeon));  /* CHANGE */
  229.           printfile("LOGOFF");
  230.           hangup=1;
  231.         }
  232.         break;
  233.  
  234.  
  235.     v1.6 NOTE: 4.22 code:
  236.  
  237.         if (yn()) {
  238.           outchr(12);
  239.           outstr(get_string(29));
  240.           pl(ctim2(timer()-timeon));                /* CHANGE - add 2 */
  241.           printfile("LOGOFF");
  242.           hangup=1;
  243.         }
  244.         break;
  245.  
  246.  
  247.     11. Now in void dlmainmenu() make the changes shown.
  248.  
  249.   nl();
  250.   nl();
  251.   tleft(1);
  252.   npr("T - %s\r\n",ctim2(nsl()));                   /* CHANGE */
  253.   s1[0]=0;
  254.   if (udir[curdir].subnum==-1) {
  255.  
  256.  
  257.     12. Scroll down further and continue.
  258.  
  259.     v1.6 NOTE: 4.21a and under code:
  260.  
  261.         if (yn()) {
  262.           outchr(12);
  263.           npr("Time on   = %s\r\n",ctim2(timer()-timeon));  /* CHANGE */
  264.           printfile("LOGOFF");
  265.           hangup=1;
  266.         }
  267.         break;
  268.  
  269.  
  270.     v1.6 NOTE: 4.22 code:
  271.  
  272.         if (yn()) {
  273.           outchr(12);
  274.           outstr(get_string(29));
  275.           pl(ctim2(timer()-timeon));                /* CHANGE - add 2 */
  276.           printfile("LOGOFF");
  277.           hangup=1;
  278.         }
  279.         break;
  280.  
  281.  
  282.     13. Save BBS.C and load SR.C.  Search for void send_file() and make
  283.         the changes.  Note that the line changed was too long for the
  284.         editor, so I moved it down so you could see it.
  285.  
  286.         v1.6 NOTE: 4.21a and under code:
  287.  
  288.               pl("File added to batch queue.");
  289.               sprintf(s,"Batch: Files - %d  Time - %s",numbatch,
  290.                         ctim2(batchtime));      /* CHANGE */
  291.               nl();
  292.               pl(s);
  293.               nl();
  294.               *sent=0;
  295.  
  296.  
  297.     v1.6: 4.22 code:
  298.  
  299.               nl();
  300.               pl(get_string(903));
  301.               sprintf(s,"%s - %d  %s - %s",get_string(904),
  302.                       numbatch, get_string(905),ctim2(batchtime));
  303.               nl();                   /* ADD THE 2 TO THE LINE ABOVE ! */
  304.               pl(s);
  305.               nl();
  306.               *sent=0;
  307.               *abort=0;
  308.  
  309.  
  310.     14. Save SR.C and load COM.C.  Search for void ptime() and replace
  311.         it with the function below.
  312.  
  313. void ptime()                            /* REPLACE ENTIRE FUNCTION */
  314. {
  315.   char xl[81], cl[81], atr[81], cc, s[81];
  316.   long l;
  317.  
  318.   savel(cl, atr, xl, &cc);
  319.  
  320.   ansic(0);
  321.   nl();
  322.   nl();
  323.   strcpy(s,atime());
  324.   pl(s);
  325.   if (useron) {
  326.     npr("1Time on   = %s\r\n", ctim2(timer() - timeon));
  327.     npr("1Time left = %s\r\n", ctim2(nsl()));
  328.   }
  329.   nl();
  330.  
  331.   restorel(cl, atr, xl, &cc);
  332. }
  333.  
  334.     15. Removed by TFC.  It is no longer needed.  Go to 16.
  335.  
  336.     16. Save BBSUTL.C and load XFERTMP.C.  Search for the
  337.         void download_temp_arc() and make the changes shown.
  338.  
  339.     v1.6 NOTE: 4.21a and under code:
  340.  
  341.   if (d<=nsl()) {
  342.     npr("Approx. time: %s\r\n",ctim2(d));               /* CHANGE */
  343.     sent=0;
  344.     abort=0;
  345.     sprintf(s,"TEMP.%s",syscfg.arcs[ARC_NUMBER].extension);
  346.     send_file(s1,&sent,&abort,0,s,-1,numbytes);
  347.  
  348.  
  349.     v1.6 NOTE: v4.22 code:
  350.  
  351.     outstr(get_string(851));
  352.     pl(ctim2(d));                           /* CHANGE - add '2' */
  353.     sent=0;
  354.     abort=0;
  355.     sprintf(s,"%s.%s",fn,syscfg.arcs[ARC_NUMBER].extension);
  356.     send_file(s1,&sent,&abort,0,s,-1,numbytes);
  357.     if (sent) {
  358.       if (xfer) {
  359.         ++thisuser.downloaded;
  360.  
  361.  
  362.     17. Save XFERTMP.C and load UTILITY.C.  Search for
  363.         unsigned int finduser() and add the following function
  364.         right before it.
  365.  
  366. char *atime()                                   /* ADD ENTIRE FUNCTION */
  367. {
  368.     static char dt[81];
  369.     char dow[10],mon[10],ap[10];
  370.     int i,d,y;
  371.     union REGS r;
  372.  
  373.     r.h.ah = 0x2a;
  374.     r.h.al = 0;
  375.     int86(0x21, &r, &r);
  376.     switch (r.h.al) {
  377.       case 0 : strcpy(dow,"Sunday");    break;
  378.       case 1 : strcpy(dow,"Monday");    break;
  379.       case 2 : strcpy(dow,"Tuesday");    break;
  380.       case 3 : strcpy(dow,"Wednesday");    break;
  381.       case 4 : strcpy(dow,"Thursday");    break;
  382.       case 5 : strcpy(dow,"Friday");    break;
  383.       case 6 : strcpy(dow,"Saturday");    break;
  384.     }
  385.     switch (r.h.dh) {
  386.       case 1 : strcpy(mon,"January");    break;
  387.       case 2 : strcpy(mon,"February");    break;
  388.       case 3 : strcpy(mon,"March");        break;
  389.       case 4 : strcpy(mon,"April");        break;
  390.       case 5 : strcpy(mon,"May");        break;
  391.       case 6 : strcpy(mon,"June");        break;
  392.       case 7 : strcpy(mon,"July");        break;
  393.       case 8 : strcpy(mon,"August");    break;
  394.       case 9 : strcpy(mon,"September");    break;
  395.      case 10 : strcpy(mon,"October");     break;
  396.      case 11 : strcpy(mon,"November");  break;
  397.      case 12 : strcpy(mon,"December");     break;
  398.     }
  399.     d=r.h.dl;
  400.     y=r.x.cx;
  401.     r.h.ah = 0x2c;
  402.     r.h.al = 0;
  403.     int86(0x21, &r, &r);
  404.     i=r.h.ch;
  405.     if (i>12)
  406.       i-=12;
  407.     if (i==0)
  408.       i=12;
  409.     if (r.h.ch<12)
  410.       strcpy(ap,"am");
  411.     else
  412.       strcpy(ap,"pm");
  413.     sprintf(dt,"3%s, %s %d, %4d  1%2d:%02d %s",dow,mon,d,y,i,r.h.cl,ap);
  414.     return(dt);
  415. }
  416.  
  417.  
  418.     18. Save UTILITY.C and load MSGBASE.C.  Search for void inmsg()
  419.         scroll down some, and make the changes shown.
  420.  
  421.     if (real_name)
  422.       addline(b,thisuser.realname,&l1);
  423.     else
  424.       addline(b,nam1(&thisuser,usernum,syscfg.systemnumber),&l1);
  425.     time(&ll);                          /* DELETE THIS LINE */
  426.     strcpy(s,ctime(&ll));               /* DELETE THIS LINE */
  427.     s[strlen(s)-1]=0;                   /* DELETE THIS LINE */
  428.     strcpy(s,atime());                  /* ADD THIS LINE */
  429.     addline(b,s,&l1);
  430.  
  431.  
  432.     19. Save MSGBASE.C.
  433.  
  434.     DISCLAIMER:  I make no guarantees with this mod whatsoever.
  435.     Your installation of the mod is your acceptance of any
  436.     damages caused to your hardware or software, incendental or
  437.     otherwise.
  438.  
  439.     The mod was tested with the versions of WWIV mentioned in
  440.     this file. If the mod does NOT work for you, e-mail one of
  441.     the addresses above, and tell me EXACTLY what you did, what
  442.     the screen said, and what you did to try to fix it, and I'll
  443.     do what I can to help you out.
  444.  
  445.     PLEASE REPORT ANY BUGS TO ME AT THE ABOVE ADDRESS !!!!!!!
  446.     Any other comments, suggestions, hints, things I missed,
  447.     requests for new mods, and general "Thank you!"s are all VERY
  448.     welcomed, so drop me a line.  I don't mind updates to this
  449.     mod, but do request that you send me a courtesy copy of the
  450.     changes you made.
  451.  
  452.     *****************************************************************
  453.                               Subscribe to:
  454.  
  455.                     Modding with WWIV's Flying Chicken
  456.  
  457.               WWIVLink subtype 42456, Host @12456 (REQable)
  458.                WWIVNet subtype 42456, Host @2456 (REQable)
  459.                 IceNet subtype 42456, Host @2456 (REQable)
  460.  
  461.        All mods are released on this sub first.  Occasionally, they
  462.        make the mods subs, but usually much later.  Subscribe now!
  463.     *****************************************************************
  464.  
  465.                            The Flying Chicken
  466.        1@12456 (WWIVLink)  -  1@2456 (WWIVNet) - 1@2456 (IceNet)
  467.  
  468.                          THE INSANE ASYLUM BBS
  469.                     In Operation Since August, 1989
  470.  
  471.                    Running WWIV 4.22++  (Reg #21260)
  472.           SysOp: The Flying Chicken  -  CoSysOp: Dr. Doolittle
  473.                   Snarfable  -  Auto-SysOp Validation
  474.                  Callback Validation (Local calls only)
  475.                (214) 570-5950  -  USR Dual Std (v32/HST)
  476.  
  477.                           --- END OF LINE ---
  478.  
  479.